package ec.linde.persistencia.entidades;

// Generated 07-ago-2014 12:54:27 by Hibernate Tools 4.0.0

import static javax.persistence.GenerationType.IDENTITY;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

import ec.linde.persistencia.entidades.proyectos.ContactoCliente;

/**
 * ProdClientes generated by hbm2java
 */
@Entity
@Table(name = "prod_clientes", schema = "productividad")
public class ProdClientes implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "clie_id", unique = true, nullable = false)
	private int clieId;

	@Column(name = "clie_nombre", nullable = false)
	private String clieNombre;

	@Column(name = "clie_ruc", nullable = true)
	private String clieRuc;

	@Column(name = "clie_direccion_principal", nullable = false)
	private String clieDireccionPrincipal;

	@Column(name = "clie_telefono", nullable = false)
	private String clieTelefono;

	@Column(name = "clie_email", nullable = false)
	private String clieEmail;

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "prodClientes")
	private Set<ProdCabeceraProforma> prodCabeceraProformas = new HashSet<ProdCabeceraProforma>(0);

	@OneToMany(mappedBy = "cliente", fetch = FetchType.LAZY)
	private List<ContactoCliente> listaContactoClientes = new ArrayList<ContactoCliente>();

	public ProdClientes() {
	}

	public ProdClientes(int clieId, String clieNombre, String clieRuc, String clieDireccionPrincipal, String clieTelefono, String clieEmail) {
		this.clieId = clieId;
		this.clieNombre = clieNombre;
		this.clieRuc = clieRuc;
		this.clieDireccionPrincipal = clieDireccionPrincipal;
		this.clieTelefono = clieTelefono;
		this.clieEmail = clieEmail;
	}

	public ProdClientes(int clieId, String clieNombre, String clieRuc, String clieDireccionPrincipal, String clieTelefono, String clieEmail,
			Set<ProdCabeceraProforma> prodCabeceraProformas) {
		this.clieId = clieId;
		this.clieNombre = clieNombre;
		this.clieRuc = clieRuc;
		this.clieDireccionPrincipal = clieDireccionPrincipal;
		this.clieTelefono = clieTelefono;
		this.clieEmail = clieEmail;
		this.prodCabeceraProformas = prodCabeceraProformas;
	}

	public int getClieId() {
		return this.clieId;
	}

	public void setClieId(int clieId) {
		this.clieId = clieId;
	}

	public String getClieNombre() {
		return this.clieNombre;
	}

	public void setClieNombre(String clieNombre) {
		this.clieNombre = clieNombre;
	}

	public String getClieRuc() {
		return this.clieRuc;
	}

	public void setClieRuc(String clieRuc) {
		this.clieRuc = clieRuc;
	}

	public String getClieDireccionPrincipal() {
		return this.clieDireccionPrincipal;
	}

	public void setClieDireccionPrincipal(String clieDireccionPrincipal) {
		this.clieDireccionPrincipal = clieDireccionPrincipal;
	}

	public String getClieTelefono() {
		return this.clieTelefono;
	}

	public void setClieTelefono(String clieTelefono) {
		this.clieTelefono = clieTelefono;
	}

	public String getClieEmail() {
		return this.clieEmail;
	}

	public void setClieEmail(String clieEmail) {
		this.clieEmail = clieEmail;
	}

	public Set<ProdCabeceraProforma> getProdCabeceraProformas() {
		return this.prodCabeceraProformas;
	}

	public void setProdCabeceraProformas(Set<ProdCabeceraProforma> prodCabeceraProformas) {
		this.prodCabeceraProformas = prodCabeceraProformas;
	}

	public List<ContactoCliente> getListaContactoClientes() {
		return listaContactoClientes;
	}

	public void setListaContactoClientes(List<ContactoCliente> listaContactoClientes) {
		this.listaContactoClientes = listaContactoClientes;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object entidad) {
		return (entidad instanceof ProdClientes) ? getClieId() == ((ProdClientes) entidad).getClieId() : false;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		return getClieId() > 0 ? getClieId() : super.hashCode();
	}

}
